# pragma once

#include<string>
#include<iostream>
#include<array>
#include"Visitor.h"

class ConcreteVisitor1;
class ConcreteVisitor2;

class ConcreteComponentA {
public:
    void Accept(ConcreteVisitor1 *visitor) const;
    std::string ExclusiveMethodOfConcreteComponentA() const;
};

class ConcreteComponentB {
 public:
    void Accept(ConcreteVisitor2 *visitor) const;
    std::string SpecialMethodOfConcreteComponentB() const;
};